package com.taobao.classloader;

/**
 * ClassLoader的加载策略,分为：
 * <ol>
 * <li><strong>PARENT_PRIOR:</strong> 父ClassLoader优先，会尝试先从父ClassLoader中加载Class，
 * 如果父Class中加载失败才会尝试用子ClassLoader加载Class</li>
 * <li><strong>CHILD_PRIOR:</strong> 子ClassLoader优先，会尝试先从子ClassLoader中加载Class，
 * 如果子ClassLoader中加载失败才会尝试用父ClassLoader加载Class</li>
 * <li><strong>LOAD_LIST:</strong>
 * 根据加载列表加载，如果className存在在加载列表中，就从子ClassLoader中加载，如果加载失败才从父ClassLoader中加载</li>
 * <li><strong>RegexPattern:</strong> 子ClassLoader优先，会尝试先从子ClassLoader中加载Class，
 * 如果子ClassLoader中加载失败才会尝试用父ClassLoader加载Class</li>
 * </ol>
 * 
 * @ClassName LoaderStrategy
 * @author <a href="mailto:zhengze.jy@taobao.com">zhengze.jy</a>
 * @Date 2012-1-12
 * @version v1.0
 */
public interface ClassLoadStrategy {
	// PARENT_PRIOR, CHILD_PRIOR, LOAD_LIST, BLACK_LIST;

	public Class<?> loadClass(String className, JarClassLoader jarClassLoader, ClassLoader parentClassLoader);
}
